/**************************************************************************************
*
*	Copyright (C) 2011 Brent Andrew O. Chua - See LICENSE.txt for more info.
*		
*	Filename	-	Sprite.h
*
*	Description -	Sprite class.
*
*	Comments	-
*
*	Modification History:
*			Name			   Date					Description
*			CodeSushi	-	06/20/2011	-	Creation of this file
**************************************************************************************/

#ifndef _PSX_SPRITE_H_
#define _PSX_SPRITE_H_

#include "PulseSTD.h"
#include "GuiInterfaces.h"
#include "2D.h"

namespace Pulse
{

	class Sprite /*: public ScreenElement*/
	{
	public:

		Sprite( void );
		virtual ~Sprite( void );

		virtual EErrorCode::Type	OnRestore( void );
		virtual EErrorCode::Type	OnRender( DOUBLE time, FLOAT dt );
		virtual void				OnUpdate( INT deltaMilliSeconds );
		virtual EErrorCode::Type	OnMsgProc( AppMsg msg );

		virtual int		GetZOrder( void ) const;
		virtual void	SetZOrder( CONST INT ZOrder );
		virtual BOOL	IsVisible( void ) const;
		virtual void	SetVisible( BOOL bVisible );

	private:

		Texture *m_pTexture;
		Point2	m_pos;
		Point2	m_hotspot;
		INT		m_ZOrder;
		BOOL	m_bVisible;
	};

}

#endif /* _PSX_SPRITE_H_ */